In computer programming, a variable is a programming language construct that comprises a symbolic identifier (i.e., a variable name) and an associated storage location. Developers can use the symbolic identifier as a handle to store data to, and retrieve data from, the storage location. By way of example, within the source code for an application, a developer can declare a variable having the name “employeeID” and data type “integer.” The developer can further assign an integer value to the variable (e.g., “1000”) using an appropriate assignment statement that references variable name “employeeID.” The developer can then compile the source code (via a compiler) into executable, or runtime, code. At runtime of the application, the runtime code can allocate, within a memory component of the machine executing the application, a storage location for the variable “employeeID” that is suitable for storing integer values. The runtime code can then store the value “1000” in the allocated storage location upon encountering the assignment of “1000” to “employeeID.”
Generally speaking, conventional compilers generate runtime code that stores variable data entirely in the working, volatile memory (e.g., RAM) of the executing machine. Although this approach ensures that variables can be accessed quickly, it also imposes a limit on the maximum size of the variables—namely, the amount of free space available in the machine's volatile memory pool. This limit can be problematic if the application needs to store and retrieve variable data that is very large, such as maps, arrays, and other complex data structures. Developers can circumvent this limitation to an extent by implementing code for manually persisting such data to a backend storage device (via, e.g., a file system or database application programming interface (API)). However, this workaround can significantly increase the complexity the application.